<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>json - JavaScript</title>
    <style>

    </style>
</head>
<body>
    <h1>json</h1>
    <p>
        JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
        它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。
        是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。
        JSON采用完全独立于程序语言的文本格式，但是也使用了类C语言的习惯（包括C, C++, C#, Java, JavaScript, Perl, Python等）。
        这些特性使JSON成为理想的数据交换语言。
    </p>

    <h4>学习目标</h4>
    <ol>
        <li>熟悉json格式的数据使用</li>
    </ol>

    <script type="text/javascript">

        // -----------------------------
        // 0. 为什么要有json格式
        // -----------------------------


        // -----------------------------
        // 1. json 语法规则
        // -----------------------------
        /*
            数据在名称/值对中
            数据由逗号分隔
            大括号 {} 保存对象
            中括号 [] 保存数组，数组可以包含多个对象

            JSON 值可以是：
                数字（整数或浮点数）
                字符串（在双引号中）
                逻辑值（true 或 false）
                数组（在中括号中）
                对象（在大括号中）
                null
         */
        // 1.1 声明一个常见的门户网站json对象，包括名称name，url。
        // 1.2 声明一个数组，其中包含了若干门户网站json对象。


        // -----------------------------
        // 2. json 对象
        // -----------------------------
        /*
            JSON 对象使用在大括号({})中书写。
            对象可以包含多个 key/value（键/值）对。
            key 必须是字符串，value 可以是合法的 JSON 数据类型（字符串, 数字, 对象, 数组, 布尔值或 null）。
            key 和 value 中使用冒号(:)分割。
            每个 key/value 对使用逗号(,)分割。

            访问对象值：
                使用点号（.）来访问对象的值

            循环对象：
                你可以使用 for-in 来循环对象的属性
         */
        //
        // 2.1 声明一个新闻json对象，其中包含标题，内容，封面图片。（简单的json对象）
        // 2.2 给上例对象增加一个作者，值是json对象，
        //      包含：author_id, author_name, author_gender（json对象中嵌套json对象）



        // -----------------------------
        // 3. json 数组
        // -----------------------------
        /*
            JSON 数组在中括号中书写。
            JSON 中数组值必须是合法的 JSON 数据类型（字符串, 数字, 对象, 数组, 布尔值或 null）。
            JavaScript 中，数组值可以是以上的 JSON 数据类型，也可以是 JavaScript 的表达式，包括函数，日期，及 undefined。
         */
        // 3.1 声明一个json数组，其中包含了：洋桔梗、百合、菊花、玫瑰、满天星。
        // 3.2 参考内容管理系统，声明一个分类列表，其中包含：分类id、分类名、所属父类、排序



        // ----------------------------------------------------
        // -- 练习
        // ----------------------------------------------------
        // 1. 设计网易新闻的父类下拉框和子类下拉框, 当父类改变时, 子类下拉框相应切换
        //      之前是设计成数组格式，现在使用json数组格式进行
        //      其中字段为：分类id、分类名、子类列表、排序
        // 2. 使用工具格式化显示json数据：https://www.json.cn/
        // 3. 了解XML数据格式，并和json格式进行对比。


    </script>
</body>
</html>